package DataAccessObject.entity; 

import DataAccessObject.DAO;
import entity.Asignatura;

public class AsignaturaDAO extends DAO<Asignatura.Pk, Asignatura> {
	
	public AsignaturaDAO() throws Exception {
		super();
	}// Constructor
	
  public Asignatura insert(int cod, String nombre, String profesor, double creditos) {
    Asignatura entity = findById(cod);
    if (entity != null) {
      System.out.println("Valor insertado");
      return null;
    }//if
    entity = new Asignatura();
    entity.setCod(cod);
    entity.setNombre(nombre);
    entity.setProfesor(profesor);
    entity.setCreditos((float) creditos);
    try {
      this.persist(entity);
    } catch (Exception e) {
      e.printStackTrace();
      entity = null;
    }// try-catch
    return entity;
  }// insert
  
  public Asignatura insert(Asignatura asig) {
    Asignatura entity = findById(asig.getCod());
    if (entity != null) {
      System.out.println("Valor insertado");
      return null;
    }//if
    try {
      this.persist(asig);
    } catch (Exception e) {
      e.printStackTrace();
      asig = null;
    }// try-catch
    return asig;
  }// insert

  public Asignatura update(Asignatura asig) {
    try {
      this.merge(asig);
    } catch (Exception e) {
      e.printStackTrace();
      asig = null;
    }// try-catch
    return asig;
  }// insert

  public Asignatura delete(int cod) {
    Asignatura entity = null;
    Asignatura.Pk id = new Asignatura.Pk();
    id.setCod(cod);
    try {
      entity = this.remove(id);
    } catch (Exception e) {
      e.printStackTrace();
      entity = null;
    }// try-catch
    return entity;
  }// delete

  public Asignatura findById(int cod) {
    Asignatura.Pk id = new Asignatura.Pk();
    id.setCod(cod);
    return this.findById(id);
  }// findById

}// class AsignaturaDAO